//package com.hmall.search.es;
//
//import cn.hutool.core.bean.BeanUtil;
//import cn.hutool.json.JSONUtil;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.hmall.api.controller.ItemClient;
//import com.hmall.api.dto.ItemDTO;
//import com.hmall.common.domain.PageDTO;
//import com.hmall.common.domain.PageQuery;
//import com.hmall.search.domain.dto.ItemDoc;
//import lombok.RequiredArgsConstructor;
//import org.elasticsearch.action.bulk.BulkRequest;
//import org.elasticsearch.action.index.IndexRequest;
//import org.elasticsearch.client.RequestOptions;
//import org.elasticsearch.common.xcontent.XContentType;
//import org.junit.jupiter.api.Test;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.ActiveProfiles;
//
//import java.util.List;
//
//@SpringBootTest
//@ActiveProfiles("local")
//@RequiredArgsConstructor
//public class testEs {
//
//    private final ItemClient itemClient;
//    @Test
//    void testLoadtoEs(){
//        //使用分页功能完成批量新增
//
//        int pageNo=1;
//        int pageSize=1000;
//        while (true) {
//            BulkRequest request = new BulkRequest();
////            Page<Item> page = itemService.lambdaQuery().eq(Item::getStatus, 1)
////                    .page(new Page<>(pageNo, pageSize));
//            PageQuery pageQuery=new PageQuery();
//            pageQuery.setPageNo(pageNo);
//            pageQuery.setPageSize(pageSize);
//            PageDTO<ItemDTO> page = itemClient.queryItemByPage(pageQuery);
//            if(page.getRecords()==null || page.getRecords().size()==0){
//                break;
//            }
//            List<Item> items = page.getRecords();
//            List<ItemDoc> itemDocs = BeanUtil.copyToList(items, ItemDoc.class);
//            itemDocs.forEach(itemDoc -> {
//               request.add(new IndexRequest("items").id(itemDoc.getId()).
//                       source(JSONUtil.toJsonStr(itemDoc), XContentType.JSON));
//            });
//            client.bulk(request, RequestOptions.DEFAULT);
//            pageNo++;
//        }
//
//    }
//    }
//}
